From: Daniel Drake Date: Wed, 24 May 2023 08:34:42 +0000 (+0200) Subject: ibusManager: Close candidate popup upon engine change X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~337^2~2^2~66 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=fa34d30d3e70c4ea70aeb44f5a8dbba0ee601d3b;p=gnome-shell.git ibusManager: Close candidate popup upon engine change The IBusCandidatePopup can get 'stuck' in an active, visible state if it is on-screen at the point when the input method is changed to a method that doesn't use such popup (e.g. regular English). Force the candidate popup to close when the engine is changed. It will reappear (via regular lookup table update signal) if/when it is next required. Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6717 Part-of: --- diff --git a/js/misc/ibusManager.js b/js/misc/ibusManager.js index 820ee827c..969556dc2 100644 --- a/js/misc/ibusManager.js +++ b/js/misc/ibusManager.js @@ -3,6 +3,7 @@ const { Gio, GLib, IBus, Meta, Shell } = imports.gi; const Signals = imports.misc.signals; +const BoxPointer = imports.ui.boxpointer; const IBusCandidatePopup = imports.ui.ibusCandidatePopup; @@ -253,6 +254,7 @@ var IBusManager = class extends Signals.EventEmitter { return; this._currentEngineName = engineName; + this._candidatePopup.close(BoxPointer.PopupAnimation.NONE); if (this._registerPropertiesId != 0) return;